home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / util / gnu / a2_0bEmacs_bin.lha / Emacs-19.25 / lisp / files.elc < prev    next >
Text File  |  1994-11-02  |  57KB  |  830 lines

  1.  
  2. (defconst delete-auto-save-files t "\
  3. *Non-nil means delete a buffer's auto-save file when the buffer is saved.")
  4.  
  5. (defconst directory-abbrev-alist nil "\
  6. *Alist of abbreviations for file directories.
  7. A list of elements of the form (FROM . TO), each meaning to replace
  8. FROM with TO when it appears in a directory name.  This replacement is
  9. done when setting up the default directory of a newly visited file.
  10. *Every* FROM string should start with `^'.
  11.  
  12. Do not use `~' in the TO strings.
  13. They should be ordinary absolute directory names.
  14.  
  15. Use this feature when you have directories which you normally refer to
  16. via absolute symbolic links.  Make TO the name of the link, and FROM
  17. the name it is linked to.")
  18.  
  19. (defconst make-backup-files (not (eq system-type (quote vax-vms))) "\
  20. *Non-nil means make a backup of a file the first time it is saved.
  21. This can be done by renaming the file or by copying.
  22.  
  23. Renaming means that Emacs renames the existing file so that it is a
  24. backup file, then writes the buffer into a new file.  Any other names
  25. that the old file had will now refer to the backup file.  The new file
  26. is owned by you and its group is defaulted.
  27.  
  28. Copying means that Emacs copies the existing file into the backup
  29. file, then writes the buffer on top of the existing file.  Any other
  30. names that the old file had will now refer to the new (edited) file.
  31. The file's owner and group are unchanged.
  32.  
  33. The choice of renaming or copying is controlled by the variables
  34. `backup-by-copying', `backup-by-copying-when-linked' and
  35. `backup-by-copying-when-mismatch'.  See also `backup-inhibited'.")
  36.  
  37. (defvar backup-inhibited nil "\
  38. Non-nil means don't make a backup, regardless of the other parameters.
  39. This variable is intended for use by making it local to a buffer.
  40. But it is local only if you make it local.")
  41.  
  42. (put (quote backup-inhibited) (quote permanent-local) t)
  43.  
  44. (defconst backup-by-copying nil "\
  45. *Non-nil means always use copying to create backup files.
  46. See documentation of variable `make-backup-files'.")
  47.  
  48. (defconst backup-by-copying-when-linked nil "\
  49. *Non-nil means use copying to create backups for files with multiple names.
  50. This causes the alternate names to refer to the latest version as edited.
  51. This variable is relevant only if `backup-by-copying' is nil.")
  52.  
  53. (defconst backup-by-copying-when-mismatch nil "\
  54. *Non-nil means create backups by copying if this preserves owner or group.
  55. Renaming may still be used (subject to control of other variables)
  56. when it would not result in changing the owner or group of the file;
  57. that is, for files which are owned by you and whose group matches
  58. the default for a new file created there by you.
  59. This variable is relevant only if `backup-by-copying' is nil.")
  60.  
  61. (defvar backup-enable-predicate (quote (lambda (name) (or (< (length name) 5) (not (string-equal "/tmp/" (substring name 0 5)))))) "\
  62. Predicate that looks at a file name and decides whether to make backups.
  63. Called with an absolute file name as argument, it returns t to enable backup.")
  64.  
  65. (defconst buffer-offer-save nil "\
  66. *Non-nil in a buffer means offer to save the buffer on exit
  67. even if the buffer is not visiting a file.
  68. Automatically local in all buffers.")
  69.  
  70. (make-variable-buffer-local (quote buffer-offer-save))
  71.  
  72. (defconst find-file-existing-other-name nil "\
  73. *Non-nil means find a file under alternative names, in existing buffers.
  74. This means if any existing buffer is visiting the file you want
  75. under another name, you get the existing buffer instead of a new buffer.")
  76.  
  77. (defconst find-file-visit-truename nil "\
  78. *Non-nil means visit a file under its truename.
  79. The truename of a file is found by chasing all links
  80. both at the file level and at the levels of the containing directories.")
  81.  
  82. (defvar buffer-file-truename nil "\
  83. The abbreviated truename of the file visited in the current buffer.
  84. That is, (abbreviated-file-name (file-truename buffer-file-name)).
  85. This variable is automatically local in all buffers, when non-nil.")
  86.  
  87. (make-variable-buffer-local (quote buffer-file-truename))
  88.  
  89. (put (quote buffer-file-truename) (quote permanent-local) t)
  90.  
  91. (defvar buffer-file-number nil "\
  92. The device number and file number of the file visited in the current buffer.
  93. The value is a list of the form (FILENUM DEVNUM).
  94. This pair of numbers uniquely identifies the file.
  95. If the buffer is visiting a new file, the value is nil.")
  96.  
  97. (make-variable-buffer-local (quote buffer-file-number))
  98.  
  99. (put (quote buffer-file-number) (quote permanent-local) t)
  100.  
  101. (defconst file-precious-flag nil "\
  102. *Non-nil means protect against I/O errors while saving files.
  103. Some modes set this non-nil in particular buffers.")
  104.  
  105. (defvar version-control nil "\
  106. *Control use of version numbers for backup files.
  107. t means make numeric backup versions unconditionally.
  108. nil means make them for files that have some already.
  109. `never' means do not make them.")
  110.  
  111. (defvar dired-kept-versions 2 "\
  112. *When cleaning directory, number of versions to keep.")
  113.  
  114. (defvar trim-versions-without-asking nil "\
  115. *If t, deletes excess backup versions silently.
  116. If nil, asks confirmation.  Any other value prevents any trimming.")
  117.  
  118. (defvar kept-old-versions 2 "\
  119. *Number of oldest versions to keep when a new numbered backup is made.")
  120.  
  121. (defvar kept-new-versions 2 "\
  122. *Number of newest versions to keep when a new numbered backup is made.
  123. Includes the new backup.  Must be > 0")
  124.  
  125. (defconst require-final-newline nil "\
  126. *Value of t says silently ensure a file ends in a newline when it is saved.
  127. Non-nil but not t says ask user whether to add a newline when there isn't one.
  128. nil means don't add newlines.")
  129.  
  130. (defconst auto-save-default t "\
  131. *Non-nil says by default do auto-saving of every file-visiting buffer.")
  132.  
  133. (defconst auto-save-visited-file-name nil "\
  134. *Non-nil says auto-save a buffer in the file it is visiting, when practical.
  135. Normally auto-save files are written under other names.")
  136.  
  137. (defconst save-abbrevs nil "\
  138. *Non-nil means save word abbrevs too when files are saved.
  139. Loading an abbrev file sets this to t.")
  140.  
  141. (defconst find-file-run-dired t "\
  142. *Non-nil says run dired if `find-file' is given the name of a directory.")
  143.  
  144. (defvar find-file-not-found-hooks nil "\
  145. List of functions to be called for `find-file' on nonexistent file.
  146. These functions are called as soon as the error is detected.
  147. `buffer-file-name' is already set up.
  148. The functions are called in the order given until one of them returns non-nil.")
  149.  
  150. (defvar find-file-hooks nil "\
  151. List of functions to be called after a buffer is loaded from a file.
  152. The buffer's local variables (if any) will have been processed before the
  153. functions are called.")
  154.  
  155. (defvar write-file-hooks nil "\
  156. List of functions to be called before writing out a buffer to a file.
  157. If one of them returns non-nil, the file is considered already written
  158. and the rest are not called.
  159. These hooks are considered to pertain to the visited file.
  160. So this list is cleared if you change the visited file name.
  161. See also `write-contents-hooks'.
  162. Don't make this variable buffer-local; instead, use `local-write-file-hooks'.")
  163.  
  164. (put (quote write-file-hooks) (quote permanent-local) t)
  165.  
  166. (defvar local-write-file-hooks nil "\
  167. Just like `write-file-hooks', except intended for per-buffer use.
  168. The functions in this list are called before the ones in
  169. `write-file-hooks'.")
  170.  
  171. (make-variable-buffer-local (quote local-write-file-hooks))
  172.  
  173. (put (quote local-write-file-hooks) (quote permanent-local) t)
  174.  
  175. (defvar write-contents-hooks nil "\
  176. List of functions to be called before writing out a buffer to a file.
  177. If one of them returns non-nil, the file is considered already written
  178. and the rest are not called.
  179. These hooks are considered to pertain to the buffer's contents,
  180. not to the particular visited file; thus, `set-visited-file-name' does
  181. not clear this variable, but changing the major mode does clear it.
  182. See also `write-file-hooks'.")
  183.  
  184. (defconst enable-local-variables t "\
  185. *Control use of local-variables lists in files you visit.
  186. The value can be t, nil or something else.
  187. A value of t means local-variables lists are obeyed;
  188. nil means they are ignored; anything else means query.
  189.  
  190. The command \\[normal-mode] always obeys local-variables lists
  191. and ignores this variable.")
  192.  
  193. (defconst enable-local-eval (quote maybe) "\
  194. *Control processing of the \"variable\" `eval' in a file's local variables.
  195. The value can be t, nil or something else.
  196. A value of t means obey `eval' variables;
  197. nil means ignore them; anything else means query.
  198.  
  199. The command \\[normal-mode] always obeys local-variables lists
  200. and ignores this variable.")
  201.  
  202. (defconst backup-char (if (eq system-type (quote amigados)) "!" "~") "\
  203. Character to add to file names to make backup names.")
  204.  
  205. (defconst autosave-char (if (eq system-type (quote amigados)) "@" "#") "\
  206. Character to add to file names to make autosave names.")
  207.  
  208. (defconst bufferfile-char (if (eq system-type (quote amigados)) "^" "%") "\
  209. Character to add to buffer names to make file names.")
  210.  
  211. (or (fboundp (quote lock-buffer)) (defalias (quote lock-buffer) (quote ignore)))
  212.  
  213. (or (fboundp (quote unlock-buffer)) (defalias (quote unlock-buffer) (quote ignore)))
  214.  
  215. (defun ange-ftp-completion-hook-function (op &rest args) (byte-code "Ä>ƒÅÆ    #‚Ç =…
  216. BÅ    \"*‡" [op args inhibit-file-name-handlers inhibit-file-name-operation (file-name-completion file-name-all-completions) apply ange-ftp-hook-function ange-ftp-completion-hook-function] 4))
  217.  
  218. (defun pwd nil "\
  219. Show the current default directory." (interactive nil) (byte-code "ÀˆÂà   \"‡" [nil default-directory message "Directory %s"] 3))
  220.  
  221. (defvar cd-path nil "\
  222. Value of the CDPATH environment variable, as a list.
  223. Not actually set up until the first time you you use it.")
  224.  
  225. (defun parse-colon-path (cd-path) "\
  226. Explode a colon-separated list of paths into a string list." (byte-code "…AÅÅÆÅÇP‰ˆÈÇ #‰…>É
  227. Uƒ(ł0ÊË O!!C\"‰ˆ Ì\\‰ˆ‚ˆ
  228. ,‡" [cd-path cd-prefix cd-list cd-start cd-colon nil 0 ":" string-match nconc substitute-in-file-name file-name-as-directory 1] 9))
  229.  
  230. (defun cd-absolute (dir) "\
  231. Change current directory to given absolute file name DIR." (byte-code "ÃÄ!!‰ˆ    Å=?…Æ!‰ˆÇ!?ƒ#ÈÉ\"‚3Ê!ƒ/‰‚3ÈË\"‡" [dir system-type default-directory abbreviate-file-name expand-file-name vax-vms file-name-as-directory file-directory-p error "%s is not a directory" file-executable-p "Cannot cd to %s:  Permission denied"] 9))
  232.  
  233. (defun cd (dir) "\
  234. Make DIR become the current buffer's default directory.
  235. If your environment includes a `CDPATH' variable, try each one of that
  236. colon-separated list of directories when resolving a relative directory name." (interactive "FChange default directory: ") (byte-code "ÈÄ!ƒÅÆ!!‚/    ?…$ÇÈÉ!!
  237. †!ÊC‰)ˆË̍?…/ÍÎ!‡" [dir cd-path trypath nil file-name-absolute-p cd-absolute expand-file-name parse-colon-path getenv "CDPATH" "./" found (byte-code "ÂÃ\"ˆÁ‡" [cd-path nil mapcar (lambda (x) (byte-code "Ä    
  238. P!Å!…Æ!ˆÇÈÃ\")‡" [f x dir t expand-file-name file-directory-p cd-absolute throw found] 6))] 3) error "No such directory found via CDPATH environment variable"] 7))
  239.  
  240. (defun load-file (file) "\
  241. Load the Lisp file named FILE." (interactive "fLoad file: ") (byte-code "ÁˆÃÄ!ÁÁÂ$‡" [file nil t load expand-file-name] 6))
  242.  
  243. (defun load-library (library) "\
  244. Load the library named LIBRARY.
  245. This is an interface to the function `load'." (interactive "sLoad library: ") (byte-code "ÁˆÂ!‡" [library nil load] 2))
  246.  
  247. (defun file-local-copy (file &optional buffer) "\
  248. Copy the file FILE into a temporary file on this machine.
  249. Returns the name of the local copy, or nil, if FILE is directly
  250. accessible." (byte-code "à   Ä\"ƒÅÄ    #‚Â)‡" [handler file nil find-file-name-handler file-local-copy funcall] 5))
  251.  
  252. (defun file-truename (filename) "\
  253. Return the truename of FILENAME, which should be absolute.
  254. The truename of a file name is found by chasing symbolic links
  255. both at the level of the file and at the level of the directories
  256. containing it, until no links are left at any level." (byte-code "ÅÆ\"†ÅÇÈOÆ\"…ÉÊ\"…(Ë!‰ˆÅÌ\"…(͉ˆÎÏ\"    ƒ:Р   Ï#‚¡Ñ!ÒÒÓ
  257. !‰ˆÅ
  258. \"†VÔÏ !!‰ˆÕÖ×!\"ƒjÓÑÓ
  259. !!!‚ ÕØ×!\"ƒyÓ
  260. !‚ 
  261. ×!P‰ˆÙ!‰ˆ ƒŸÚ !ƒ—Ï !‚œÏ
  262. P!‚ +)‡" [filename handler dir target dirfile string= "~" 0 1 string-match "~[^/]*" expand-file-name "" "/" find-file-name-handler file-truename funcall file-name-directory nil directory-file-name file-name-as-directory equal ".." file-name-nondirectory "." file-symlink-p file-name-absolute-p] 27))
  263.  
  264. (defun file-chase-links (filename) "\
  265. Chase links in FILENAME until a name that is not a link.
  266. Does not examine containing directories for links,
  267. unlike `file-truename'." (byte-code "ÄÅ Æ
  268. !‰…h    ÇU…ÈÉ \"ˆÊË\"…4ÇÌÇ!TOÍÇ!ÄOP‰ˆ‚ˆÊÎ\"…VÏÄO‰ˆÐÑÒÓÑÒ
  269. !!!!!!‰ˆ‚5ˆÔÒ
  270. !\"‰ˆ    S‰ˆ‚ˆ
  271. +‡" [tem count newname filename nil 100 file-symlink-p 0 error "Apparent cycle of symbolic links for %s" string-match "//+" match-beginning match-end "\\`\\.\\./" 3 file-name-as-directory directory-file-name file-name-directory file-chase-links expand-file-name] 17))
  272.  
  273. (defun switch-to-buffer-other-window (buffer) "\
  274. Select buffer BUFFER in another window." (interactive "BSwitch to buffer in other window: ") (byte-code "ÈÁÄ
  275. Á\")‡" [pop-up-windows t buffer nil pop-to-buffer] 3))
  276.  
  277. (defun switch-to-buffer-other-frame (buffer) "\
  278. Switch to buffer BUFFER in another frame." (interactive "BSwitch to buffer in other frame: ") (byte-code "ÈÁÄ
  279. Á\")‡" [pop-up-frames t buffer nil pop-to-buffer] 3))
  280.  
  281. (defun find-file (filename) "\
  282. Edit file FILENAME.
  283. Switch to a buffer visiting file FILENAME,
  284. creating one if none already exists." (interactive "FFind file: ") (byte-code "ÁˆÂÃ!!‡" [filename nil switch-to-buffer find-file-noselect] 3))
  285.  
  286. (defun find-file-other-window (filename) "\
  287. Edit file FILENAME, in another window.
  288. May create a new window, or reuse an existing one.
  289. See the function `display-buffer'." (interactive "FFind file in other window: ") (byte-code "ÁˆÂÃ!!‡" [filename nil switch-to-buffer-other-window find-file-noselect] 3))
  290.  
  291. (defun find-file-other-frame (filename) "\
  292. Edit file FILENAME, in another frame.
  293. May create a new frame, or reuse an existing one.
  294. See the function `display-buffer'." (interactive "FFind file in other frame: ") (byte-code "ÁˆÂÃ!!‡" [filename nil switch-to-buffer-other-frame find-file-noselect] 3))
  295.  
  296. (defun find-file-read-only (filename) "\
  297. Edit file FILENAME but don't allow changes.
  298. Like \\[find-file] but marks buffer as read-only.
  299. Use \\[toggle-read-only] to permit editing." (interactive "fFind file read-only: ") (byte-code "ÈÄ!ˆÂ‰ˆp‡" [filename buffer-read-only t nil find-file] 3))
  300.  
  301. (defun find-file-read-only-other-window (filename) "\
  302. Edit file FILENAME in another window but don't allow changes.
  303. Like \\[find-file-other-window] but marks buffer as read-only.
  304. Use \\[toggle-read-only] to permit editing." (interactive "fFind file read-only other window: ") (byte-code "ÈÄ!ˆÂ‰ˆp‡" [filename buffer-read-only t nil find-file-other-window] 3))
  305.  
  306. (defun find-file-read-only-other-frame (filename) "\
  307. Edit file FILENAME in another frame but don't allow changes.
  308. Like \\[find-file-other-frame] but marks buffer as read-only.
  309. Use \\[toggle-read-only] to permit editing." (interactive "fFind file read-only other frame: ") (byte-code "ÈÄ!ˆÂ‰ˆp‡" [filename buffer-read-only t nil find-file-other-frame] 3))
  310.  
  311. (defun find-alternate-file (filename) "\
  312. Find file FILENAME, select its buffer, kill previous buffer.
  313. If the current buffer now contains an empty file that you just visited
  314. (presumably by mistake), use this command to visit the file you really want." (interactive (byte-code "    ÃÃ…Å!Æ!‰ˆÇÈ ÃÃ
  315. %C+‡" [file buffer-file-name file-name nil file-dir file-name-nondirectory file-name-directory read-file-name "Find alternate file: "] 8)) (byte-code "È͠…ÎÏÐÑ \"!?…ÒÓ!ˆp    
  316. Ñ      ÔÕ!ˆÃ‰ˆÃ‰ˆÃ‰
  317. ˆÖŽ× ˆØ !)ˆp=†MÙ!-‡" [file buffer-file-name file-name nil file-dir obuf ofile onum buffer-file-number otrue buffer-file-truename oname filename buffer-modified-p yes-or-no-p format "Buffer %s is modified; kill anyway? " buffer-name error "Aborted" rename-buffer " **lose**" ((byte-code "p=…
  318. ‰ˆ ‰ˆ‰ˆÈ ˆÉ!‡" [obuf buffer-file-name ofile buffer-file-number onum buffer-file-truename otrue oname lock-buffer rename-buffer] 3)) unlock-buffer find-file kill-buffer] 11))
  319.  
  320. (defun create-file-buffer (filename) "\
  321. Create a suitably named buffer for visiting FILENAME, and return it.
  322. FILENAME (sans directory) is used unchanged if that name is free;
  323. otherwise a string <2> or <3> or ... is appended to get an unused name." (byte-code "    !ÃÄ\"…    ‰ˆÅ!)‡" [lastname filename file-name-nondirectory string= "" generate-new-buffer] 4))
  324.  
  325. (defun generate-new-buffer (name) "\
  326. Create and return a buffer with a name based on NAME.
  327. Choose the buffer's name using `generate-new-buffer-name'." (byte-code "ÁÂ!!‡" [name get-buffer-create generate-new-buffer-name] 3))
  328.  
  329. (defconst automount-dir-prefix "^/tmp_mnt/" "\
  330. Regexp to match the automounter prefix in a directory name.")
  331.  
  332. (defvar abbreviated-home-dir nil "\
  333. The user's homedir abbreviated according to `directory-abbrev-list'.")
  334.  
  335. (defun abbreviate-file-name (filename) "\
  336. Return a version of FILENAME shortened using `directory-abbrev-alist'.
  337. This also substitutes \"~\" for the user's home directory.
  338. Type \\[describe-variable] directory-abbrev-alist RET for more information." (byte-code "Ç    \"…ÈÉ    ÊË!SÌO!!…    ÊË!SÌO‰ˆ 
  339. …CÇ
  340. @@    \"…:
  341. @A    ÊË!ÌOP‰ˆ
  342. A‰ˆ‚!ˆ †UÍÎÏÐÑ!!ÒQ)‰ˆÇ     \"…ÊË!ÓU…j    ËHÔU?…Õ=…€Ö ׎ÇØ    \"))?…–Ñ    ÙÓ!ÊÓ!O    ÊË!ÌOQ‰ˆ    )‡" [automount-dir-prefix filename tail directory-abbrev-alist abbreviated-home-dir system-type match-data string-match file-exists-p file-name-directory match-end 0 nil "$foo" "^" abbreviate-file-name expand-file-name "~" "\\(/\\|$\\)" 1 47 ms-dos match-data ((byte-code "Á!‡" [match-data store-match-data] 2)) "^[a-zA-Z]:/$" match-beginning] 21))
  343.  
  344. (defvar find-file-not-true-dirname-list nil "\
  345. *List of logical names for which visiting shouldn't save the true dirname.
  346. On VMS, when you visit a file using a logical name that searches a path,
  347. you may or may not want the visited file name to record the specific
  348. directory where the file was found.  If you *do not* want that, add the logical
  349. name to this list as a string.")
  350.  
  351. (defun find-buffer-visiting (filename) "\
  352. Return the buffer visiting file FILENAME (a string).
  353. This is like `get-file-buffer', except that it checks for any buffer
  354. visiting the same file, possibly under a different name.
  355. If there is no such live buffer, return nil." (byte-code "É    !ÊË    !!†’Ì Í ?… …;Š @qˆ…*Î
  356. \"…1 @‰)ˆ A‰ˆ‚ˆ *†’ÏÐÑ
  357. !\"Ì Í… ?…Y …Š @qˆ…~Ò\"…~Ó!…~ÒÏÐÑ!\"\"…… @‰)ˆ A‰ˆ‚Sˆ +*‡" [buf filename truename list found buffer-file-name buffer-file-truename number buffer-file-number get-file-buffer abbreviate-file-name file-truename buffer-list nil string= nthcdr 10 file-attributes equal file-exists-p] 16))
  358.  
  359. (defun find-file-noselect (filename &optional nowarn) "\
  360. Read file FILENAME into a buffer and return the buffer.
  361. If a buffer exists visiting FILENAME, return that one, but
  362. verify that the file has not changed since visited or saved.
  363. The buffer is not selected, just returned to the caller." (byte-code "ÔÕ!!‰ˆÖ!ƒ    ƒ×!‚ÆØ\"‚\"Ù!ÔÚ!!ÛÜÝ !\"
  364. ?…8Þ!ß…c†UàÐ!\"†UáâÐ!#ˆ†]    …c‰ˆ
  365. ƒ¢†Ÿã
  366. !†Ÿä!?ƒÆå\"‚Ÿæçè
  367. !ƒé‚Žêë!\"!…ŸŠ
  368. qˆìÊÊ\")‚Ší!‰ˆ
  369. qˆî ˆßïðˆ ‰ ˆ ‰ ˆñ=…íßòóô!\"…Üô!õöõ!O‰ˆ÷\"?)…í ‰ˆ    …üÕ !‰‰ˆô!‰ˆø\"?…ùÓ!ˆÊ‰ˆú?\")ˆ
  370. -‡" [filename find-file-run-dired buf truename number other error nowarn find-file-existing-other-name find-file-visit-truename t buffer-file-truename buffer-file-number system-type logical find-file-not-true-dirname-list buffer-file-name default-directory backup-enable-predicate backup-inhibited abbreviate-file-name expand-file-name file-directory-p dired-noselect "%s is a directory." get-file-buffer file-truename nthcdr 10 file-attributes find-buffer-visiting nil string-equal message "%s and %s are the same file" verify-visited-file-modtime file-exists-p "File %s no longer exists!" yes-or-no-p format buffer-modified-p "File %s changed on disk.  Discard your edits? " "File %s changed on disk.  Read the new version? " file-name-nondirectory revert-buffer create-file-buffer erase-buffer (byte-code "ÂÁ\"‡" [filename t insert-file-contents] 3) ((file-error (byte-code "Á‰ˆ 
  371. …Å
  372. @!…ĉˆÁ?…\"
  373. A‰ˆ‚)‡" [error t hooks find-file-not-found-hooks nil funcall] 4))) vax-vms string-match ":" file-name-directory 0 match-beginning member funcall make-local-variable after-find-file] 37))
  374.  
  375. (defun after-find-file (&optional error warn noauto) "\
  376. Called after finding a file and by the default revert function.
  377. Sets buffer mode, parses local variables.
  378. Optional args ERROR, WARN, and NOAUTO: ERROR non-nil means there was an
  379. error in reading the file.  WARN non-nil means warn if there
  380. exists an auto-save file more recent than the visited file.
  381. NOAUTO means don't mess with auto-save mode.
  382. Finishes by calling the functions in `find-file-hooks'." (byte-code "Í    !?‰ˆ
  383. ƒ«Ã…Π   !ƒ$ljˆÏ‚‰?ƒK…3ÐÑ     \"ƒ:҂HljˆƒGӂH‰?ƒYljˆÔ‚‰ÎÕ    !!ƒfւ‰×Ø    !!ƒtÉ‚‰Ã‰ˆ×ØÕØ    !!!!ƒˆÙ‚‰Ú…›Û!ˆ †›ÜÝÃÇ#*ˆ
  384. …¥ ?…«ÞÇ!ˆßÇ!ˆàá \"‡" [buffer-read-only buffer-file-name noninteractive nil not-serious msg error t warn default-directory auto-save-default noauto find-file-hooks file-writable-p file-attributes "File exists, but cannot be read." file-newer-than-file-p make-auto-save-file-name "Auto save file is newer; consider M-x recover-file" "(New file)" "Note: file is write protected" directory-file-name "File not found and directory write-protected" file-exists-p file-name-directory "Use M-x make-dir RET RET to create the directory" "Use C-u M-x make-dir RET RET to create directory and its parents" message sit-for 1 auto-save-mode normal-mode mapcar funcall] 19))
  385.  
  386. (defun normal-mode (&optional find-file) "\
  387. Choose the major mode for this buffer automatically.
  388. Also sets up any specified local variables of the file.
  389. Uses the visited file name, the -*- line, and the local variables spec.
  390.  
  391. This function is called automatically from `find-file'.  In that case,
  392. we may set up specified local variables depending on the value of
  393. `enable-local-variables': if it is t, we do; if it is nil, we don't;
  394. otherwise, we query.  `enable-local-variables' is ignored if you
  395. run `normal-mode' explicitly." (interactive) (byte-code "ˆ†Ã    † Ä!ˆÅÆǏˆÅÈɏ‡" [find-file default-major-mode nil funcall fundamental-mode err (byte-code "À ‡" [set-auto-mode] 2) ((error (byte-code "ÁÂÃ!\"‡" [err message "File mode specification error: %s" prin1-to-string] 4))) (byte-code "    ?† )‡" [enable-local-variables find-file hack-local-variables] 2) ((error (byte-code "ÁÂÃ!\"‡" [err message "File local-variables error: %s" prin1-to-string] 4)))] 4))
  396.  
  397. (defvar auto-mode-alist (mapcar (quote purecopy) (quote (("\\.text\\'" . text-mode) ("\\.c\\'" . c-mode) ("\\.h\\'" . c-mode) ("\\.tex\\'" . TeX-mode) ("\\.ltx\\'" . LaTeX-mode) ("\\.el\\'" . emacs-lisp-mode) ("\\.mm\\'" . nroff-mode) ("\\.me\\'" . nroff-mode) ("\\.ms\\'" . nroff-mode) ("\\.man\\'" . nroff-mode) ("\\.scm\\'" . scheme-mode) ("\\.l\\'" . lisp-mode) ("\\.lisp\\'" . lisp-mode) ("\\.f\\'" . fortran-mode) ("\\.for\\'" . fortran-mode) ("\\.p\\'" . pascal-mode) ("\\.pas\\'" . pascal-mode) ("\\.mss\\'" . scribe-mode) ("\\.pl\\'" . prolog-mode) ("\\.cc\\'" . c++-mode) ("\\.hh\\'" . c++-mode) ("\\.C\\'" . c++-mode) ("\\.H\\'" . c++-mode) ("\\.texinfo\\'" . texinfo-mode) ("\\.texi\\'" . texinfo-mode) ("\\.s\\'" . asm-mode) ("ChangeLog\\'" . change-log-mode) ("change.log\\'" . change-log-mode) ("changelo\\'" . change-log-mode) ("ChangeLog.[0-9]+\\'" . change-log-mode) ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) ("\\.[12345678]\\'" . nroff-mode) ("\\.TeX\\'" . TeX-mode) ("\\.sty\\'" . LaTeX-mode) ("\\.bbl\\'" . LaTeX-mode) ("\\.bib\\'" . bibtex-mode) ("\\.article\\'" . text-mode) ("\\.letter\\'" . text-mode) ("\\.tcl\\'" . tcl-mode) ("\\.lsp\\'" . lisp-mode) ("\\.awk\\'" . awk-mode) ("\\.prolog\\'" . prolog-mode) ("\\.tar\\'" . tar-mode) ("^/tmp/Re" . text-mode) ("/Message[0-9]*\\'" . text-mode) ("^/tmp/fol/" . text-mode) ("\\.y\\'" . c-mode) ("\\.lex\\'" . c-mode) ("\\.oak\\'" . scheme-mode) ("\\.scm.[0-9]*\\'" . scheme-mode) ("\\.sgm\\'" . sgml-mode) ("\\.sgml\\'" . sgml-mode) ("\\.dtd\\'" . sgml-mode) ("[]>:/]\\..*emacs\\'" . emacs-lisp-mode) ("[:/]_emacs\\'" . emacs-lisp-mode) ("\\.ml\\'" . lisp-mode)))) "\
  398. Alist of filename patterns vs corresponding major mode functions.
  399. Each element looks like (REGEXP . FUNCTION) or (REGEXP FUNCTION).
  400. Visiting a file whose name matches REGEXP causes FUNCTION to be called.
  401. If the element has the form (REGEXP FUNCTION), then after calling
  402. FUNCTION, we delete the suffix that matched REGEXP and search the list
  403. again for another match.")
  404.  
  405. (defconst interpreter-mode-alist (quote (("perl" . perl-mode) ("wish" . tcl-mode) ("wishx" . tcl-mode) ("tcl" . tcl-mode) ("tclsh" . tcl-mode) ("awk" . awk-mode) ("gawk" . awk-mode) ("scm" . scheme-mode))) "\
  406. Alist mapping interpreter names to major modes.
  407. This alist applies to files whose first line starts with `#!'.
  408. Each element looks like (INTERPRETER . MODE).
  409. The car of each element is compared with
  410. the name of the interpreter specified in the first line.
  411. If it matches, mode MODE is selected.")
  412.  
  413. (defconst inhibit-first-line-modes-regexps (quote ("\\.tar$")) "\
  414. List of regexps; if one matches a file name, don't look for `-*-'.")
  415.  
  416. (defvar user-init-file "" "\
  417. File name including directory of user's initialization file.")
  418.  
  419. (defun set-auto-mode nil "\
  420. Select major mode appropriate for current buffer.
  421. This checks for a -*- mode tag in the buffer's text,
  422. compares the filename against the entries in `auto-mode-alist',
  423. or checks the interpreter that runs this file against
  424. `interpreter-mode-alist'.
  425.  
  426. It does not check for the `mode:' local variable in the
  427. Local Variables section of the file; for that, use `hack-local-variables'.
  428.  
  429. If `enable-local-variables' is nil, this function does not check for a
  430. -*- mode tag." (byte-code "ÌÌÌŠebˆÓÔ!ˆ …¿ …Õ @\"?…* A‰ˆ‚ˆ ?)…¿Ö׊ØÙÚ!…<Û!ˆ`)Ç#…¿ÓÜ!ˆ`‰ˆÖ׊ؠˆ`)Ç#…¿ÝÞ!ˆßÜ!ˆ`‰ˆbˆŠÖà    Ç#)ƒ¯ÇÖá    Ç#)…¬ÓÜ!ˆ`‰ˆÖâ    Ç#ƒ•Ýã!‚—    bˆßÜ!ˆäåæç`\"!èP!!ˆ‚s‚»äåæç    \"!èP!!ˆÇ‰ˆ
  431. ?…Ç…
  432. é=†×
  433. ê=Ç     ë    !‰    ˆ …Ž̉ ˆÌ?…ÿ…IÕ@@    \"…>@A:…Û@8ƒ4@A@    ìíì!O    Ç‰ ‚>@Ả ˆA‰ˆ‚÷ˆƒVä!‚‰ŠebˆÙî!ƒkçíï!ðï!\"‚lñ)Ìòó!\"‰ˆ…ˆäA!**ˆ‚æ+)+‡" [beg end done enable-local-variables temp inhibit-first-line-modes-regexps buffer-file-name t case-fold-search name system-type keep-going nil alist auto-mode-alist mode interpreter elt interpreter-mode-alist skip-chars-forward "     
  434. " string-match search-forward "-*-" end-of-line looking-at "^#!" 2 "     " forward-char -3 skip-chars-backward ":" "mode:" ";" -1 funcall intern downcase buffer-substring "-mode" vax-vms amigados file-name-sans-versions 0 match-beginning "#! *\\([^     
  435. ]+\\)" 1 match-end "" assoc file-name-nondirectory] 37))
  436.  
  437. (defun hack-local-variables-prop-line nil (byte-code "ŠebˆÁŠÈÉÊ!…Ë!ˆ`)ÌÍ
  438. Ã#?ƒ!Á‚ŠÉÎ!ƒ+Á‚ŠŠÌÍ
  439. Ã#ƒ<`ÏZ‰‚?ÐÑ!)ˆ`
  440. W…„ÉÒ!†PÐÓ!ˆÔÕ!bˆÖ×ØÙÚ!ÔÚ!\"!!ŒÛ`
  441. \"ˆÜp!) Ý=†{ BB‰ˆÞß!*ˆ‚Aˆà!‰ˆ…Ã=†…á‹…µ…µâ@@@A\"ˆA‰ˆ‚ *)‡" [result nil end t key val enable-local-variables buffer-file-name end-of-line looking-at "^#!" 2 search-forward "-*-" "[     ]*\\([^     
  442. :;]+\\)\\([     ]*-\\*-\\)" 3 error "-*- not terminated before end of line" "[     ]*\\([^     
  443. :]+\\)[     ]*:[     ]*" "malformed -*- line" match-end 0 intern downcase buffer-substring match-beginning 1 narrow-to-region read mode skip-chars-forward "     ;" nreverse ((byte-code "ÁÂψÄÅÆÇ!\"!‡" [buffer-file-name nil (byte-code "Àp!‡" [switch-to-buffer] 2) ((error (byte-code "ÀÁ‡" [nil (byte-code "Àp!‡" [switch-to-buffer-other-window] 2) ((error (byte-code "Àp!‡" [switch-to-buffer-other-frame] 2)))] 3))) y-or-n-p format "Set local variables as specified in -*- line of %s? " file-name-nondirectory] 5)) hack-one-local-variable] 22))
  444.  
  445. (defun hack-local-variables nil "\
  446. Parse and put into effect this buffer's local variables spec." (byte-code "Ï ˆŠdbˆÐÑdÒZe]Ó#ˆÁÔÕÂÁ#…' Á=†' …'֋)… ÁÂÂÂÂ
  447. 
  448.     ×Ø!ˆl†OÙ`Ú ˆ`\"‰ˆÛÜ!bˆn†cÙ`Ý ˆ`\"‰ˆ…uGÞ!‰ˆ…„Þ!ßP‰ˆ… ƒ”àá!‚—âã!ˆ…®ä!ƒ«å!‚®æç!ˆ×Ø!ˆ`‰    ˆ×è!ˆl…Ãæé!ˆêØ!ˆÙ    `\" ë !Âìí !î\"ƒè‰‚×ï!ˆåã!ˆëp!‰ˆêð!ˆ×Ø!ˆƒ ä!‚ l†æñ!ˆò\"+ˆ‚….)‡" [case-fold-search t nil enable-local-variables buffer-file-name continue prefix prefixlen suffix beg enable-local-eval selective-display str var val hack-local-variables-prop-line search-backward "
  449. " 3000 move search-forward "Local Variables:" ((byte-code "Áp!ˆŠÂ ˆÃÄ `\")ˆÅÆǃÈ!‚ ÉÊ P\"!‡" [buffer-file-name switch-to-buffer beginning-of-line set-window-start selected-window y-or-n-p format "Set local variables as specified at end of %s? " file-name-nondirectory "buffer " buffer-name] 11)) skip-chars-forward "     " buffer-substring end-of-line match-beginning 0 beginning-of-line regexp-quote "$" re-search-forward "[
  450. ]" forward-line 1 looking-at forward-char error "Local variables entry is missing the prefix" "^:
  451. " "Missing colon in local variables entry" skip-chars-backward read string-equal downcase "end" "^:" "
  452. " "Local variables entry is terminated incorrectly" hack-one-local-variable] 35))
  453.  
  454. (defconst ignored-local-variables (quote (enable-local-eval)) "\
  455. Variables to be ignored in a file's local variable spec.")
  456.  
  457. (put (quote enable-local-eval) (quote risky-local-variable) t)
  458.  
  459. (put (quote eval) (quote risky-local-variable) t)
  460.  
  461. (put (quote file-name-handler-alist) (quote risky-local-variable) t)
  462.  
  463. (put (quote minor-mode-map-alist) (quote risky-local-variable) t)
  464.  
  465. (put (quote after-load-alist) (quote risky-local-variable) t)
  466.  
  467. (put (quote buffer-file-name) (quote risky-local-variable) t)
  468.  
  469. (put (quote buffer-auto-save-file-name) (quote risky-local-variable) t)
  470.  
  471. (put (quote buffer-file-truename) (quote risky-local-variable) t)
  472.  
  473. (defun hack-one-local-variable-quotep (exp) (byte-code ":…@Á=…A:‡" [exp quote] 2))
  474.  
  475. (defun hack-one-local-variable (var val) (byte-code "Ç=ƒÈÉÊË    !!ÌP!!‚§
  476. >ƒ§ÍN†*ÎÏË!\"ƒ Ð=…g    :…g    @Ñ=…gÒÓ    8!…gÒÔ    8!…gÕÖ    8!†]×Ö    8Ø\"…gÓÔ    88Ù>†ÚÛ Ü\"?… Å=† …݋ƒšÐ=ƒŠÐ    !)‚—Þ!ˆ    L‚ßà!‚§Þ!ˆ    L‡" [var val ignored-local-variables nil enable-local-eval t buffer-file-name mode funcall intern downcase symbol-name "-mode" risky-local-variable string-match "-hooks?$\\|-functions?$\\|-forms?$" eval put hack-one-local-variable-quotep 1 2 numberp 3 equal (quote defun) (lisp-indent-hook) string= user-login-name "root" ((byte-code "Âp!ˆŠÃ ˆÄÅ `\")ˆÆÇÈÉ    !\"!‰‡" [enable-local-eval buffer-file-name switch-to-buffer beginning-of-line set-window-start selected-window y-or-n-p format "Process `eval' or hook local variables in file %s? " file-name-nondirectory] 9)) make-local-variable message "Ignoring `eval:' in file's local variables"] 18))
  477.  
  478. (defun set-visited-file-name (filename) "\
  479. Change name of file visited in current buffer to FILENAME.
  480. The next time the buffer is saved it will go in the newly specified file.
  481. nil or empty string as argument means make buffer not be visiting any file.
  482. Remember to delete the initial contents of the minibuffer
  483. if you wish to pass an empty string as the argument." (interactive "FSet visited file name: ") (byte-code "Áˆ…ÒÓ\"ƒÁ‚Ô!‰ˆÕ
  484. \"†(…%Ö!ˆ× ˆ‰ˆ…_Ø
  485. !Ù Ó\"…?ÚÛ!ˆ Ü=…KÝ !‰ˆÞ
  486. !‰ˆÙ ß \"†^à Æ\")ˆÁ‰ˆá ˆƒŠâã
  487. !!‰ˆ    …~‰ˆäå
  488. !8‰
  489. ‚‘ÁÁ‰
  490. ˆæç!ˆæè!ˆæé!ˆæÎ!ˆ …«Á‰ ˆæË!ˆê
  491. \"?…ÁëÎ!ˆÆ‰ˆ?ƒÛ
  492. …Ø…ØìÆ!‚àí ‰ˆ…ù…ùî!…ùïÆ#)ˆ
  493. …ðÆ!‡" [filename nil buffer-file-name new-name system-type default-directory t buffer-backed-up buffer-file-truename find-file-visit-truename buffer-file-number vc-mode buffer-read-only backup-enable-predicate backup-inhibited oauto buffer-auto-save-file-name auto-save-default string-equal "" expand-file-name equal lock-buffer unlock-buffer file-name-nondirectory string= error "Empty file name" vax-vms downcase file-name-directory buffer-name rename-buffer clear-visited-file-modtime abbreviate-file-name file-truename 10 file-attributes kill-local-variable write-file-hooks local-write-file-hooks revert-buffer-function funcall make-local-variable auto-save-mode make-auto-save-file-name file-exists-p rename-file set-buffer-modified-p] 31))
  494.  
  495. (defun write-file (filename) "\
  496. Write current buffer into file FILENAME.
  497. Makes buffer visit that file, and marks it not modified.
  498. If the buffer is already visiting a file, you can specify
  499. a directory name as FILENAME, to write a file of the same
  500. old name in that directory." (interactive (byte-code "ƒÂÃÁÁÁÁ%‚ÂÃÄÅÆ \"AÁÁÇ %C‡" [buffer-file-name nil read-file-name "Write file: " assq default-directory buffer-local-variables buffer-name] 10)) (byte-code "Áˆ
  501. ?†%Ä
  502. Å\"†%Æ
  503. !……!Ç
  504. !È!P‰ˆÉ
  505. !ˆÊÃ!ˆË ‡" [buffer-file-name nil filename t string-equal "" file-directory-p file-name-as-directory file-name-nondirectory set-visited-file-name set-buffer-modified-p save-buffer] 8))
  506.  
  507. (defun backup-buffer nil "\
  508. Make a backup of the disk file visited by the current buffer, if appropriate.
  509. This is normally done before saving the buffer the first time.
  510. If the value is non-nil, it is the result of `file-modes' on the original
  511. file; this means that the caller, after saving the buffer, should change
  512. the modes of the new file to agree with the old modes." (byte-code "…    ?…
  513. ?…É !…ÊË !Ì\"ÍHÎ>…G ÏÏÏÏÐ !‰ˆÑ !@A‰ˆÏÒӏ-‡" [make-backup-files backup-inhibited buffer-backed-up buffer-file-name real-file-name backup-info backupname targets setmodes file-exists-p elt file-attributes 8 0 (45 108) nil file-chase-links find-backup-file-name (byte-code "    …
  514. Ã=†
  515. Ä=…
  516. †ÈÉÊ\"!ÄË̏ˆÃ‰ˆ…:    …:ÄÍΏˆ    A‰ˆ‚)ˆ)‡" [delete-old-versions targets trim-versions-without-asking t nil real-file-name buffer-backed-up setmodes y-or-n-p format "Delete excess backup versions of %s? " (byte-code "†*    †*
  517. …É !ÊV†* …*Ë !Ì8†)ÍÎ8Ï \")ƒ4ÐÑҏ‚BÓ Ç#ˆÔ!‰‡" [file-precious-flag backup-by-copying backup-by-copying-when-linked real-file-name backup-by-copying-when-mismatch attr backupname t setmodes file-nlinks 1 file-attributes 9 /= 2 user-uid nil (byte-code "à   ÂÂ$‡" [real-file-name backupname t copy-file] 5) ((file-error (byte-code "Ã!…
  518. Ä!?…Å!ˆÆ    ÂÂ$‡" [backupname real-file-name t file-exists-p file-writable-p delete-file copy-file] 8))) rename-file file-modes] 8) ((file-error (byte-code "ÃÄÅ    Æ    
  519. %!‰ˆÇÈ        
  520. $ˆÉÊ!ˆËÌ͏‡" [backupname bufferfile-char backup-char expand-file-name concat "~/" "backup" message "Cannot write backup file; backing up in ~/%sbackup%s%s" sleep-for 1 nil (byte-code "à   ÂÂ$‡" [real-file-name backupname t copy-file] 5) ((file-error (byte-code "Ã!…
  521. Ä!?…Å!ˆÆ    ÂÂ$‡" [backupname real-file-name t file-exists-p file-writable-p delete-file copy-file] 8)))] 7))) (byte-code "Á@!‡" [targets delete-file] 2) ((file-error (byte-code "À‡" [nil] 1)))] 6) ((file-error (byte-code "À‡" [nil] 1)))] 8))
  522.  
  523. (defun file-name-sans-versions (name &optional keep-backup-version) "\
  524. Return FILENAME sans backup versions or strings.
  525. This is a separate procedure so your site-init or startup file can
  526. redefine it.
  527. If the optional argument KEEP-BACKUP-VERSION is non-nil,
  528. we do not remove backup version numbers, only true file version numbers." (byte-code "Å    Æ\"ƒÇÆ    
  529. $‚U    È É=ƒ3ÊË    \"†0ÊÌ    \"…+ÍÎ!†0    G‚T
  530. ƒ<    G‚TÊÏÐ Ñ Ò%    \"†TÊ ÒP    \"†T    GO)‡" [handler name keep-backup-version system-type backup-char find-file-name-handler file-name-sans-versions funcall 0 vax-vms string-match ";[-+]?[0-9]*\\'" "\\.[^]>:]*\\(\\.[-+]?[0-9]*\\)\\'" match-beginning 1 concat "\\." "[0-9]+" "\\'"] 14))
  531.  
  532. (defun make-backup-file-name (file) "\
  533. Create the non-numeric backup file name for FILE.
  534. This is a separate function so you can redefine it for customization." (byte-code "Ä=ƒ Å
  535. !Æ
  536. !ÇÈ    \"…    ÉÊË!OÌQ)‚#
  537. P‡" [system-type fn file backup-char ms-dos file-name-nondirectory file-name-directory string-match "\\([^.]*\\)\\(\\..*\\)?" 0 match-end 1 ".bak"] 8))
  538.  
  539. (defun backup-file-name-p (file) "\
  540. Return non-nil if FILE is a backup file name (numeric or not).
  541. This is a separate function so you can redefine it for customization.
  542. You may need to redefine `file-name-sans-versions' as well." (byte-code "Ã=ƒÄÅ    \"‚Ä
  543. ÆP    \"‡" [system-type file backup-char ms-dos string-match "\\.bak$" "$"] 4))
  544.  
  545. (defun backup-extract-version (fn) "\
  546. Given the name of a numeric backup file, return the backup number.
  547. Uses the free variable `bv-length', whose value should be
  548. the index in the name where the version number begins." (byte-code "ÃÄÅQ    
  549. #…ÆÇ!
  550. UƒÈ    
  551. ÉO!‚LJ" [backup-char fn bv-length string-match "[0-9]+" "$" match-beginning 0 string-to-int -1] 6))
  552.  
  553. (defun find-backup-file-name (fn) "\
  554. Find a file name for a backup file, and suggestions for deletions.
  555. Value is a list whose car is the name for the backup file
  556.  and whose cdr is a list of old versions to consider deleting now." (byte-code "Î=ƒÏ    !C‚qР   !Ñ Q
  557. GÇÇÒÇ    Ò
  558. ÇÓԏˆ    ?ƒ7Ï    !C‚oÕ    Ñ ÖT! %
  559. ÒV…R×  Ø#ÒY…nÙÚÛ \"ÜÛ
  560. S\"Ç\"ˆ)\"B.‡" [version-control fn base-versions backup-char bv-length possibilities versions nil high-water-mark deserve-versions-p number-to-delete kept-new-versions kept-old-versions v never make-backup-file-name file-name-nondirectory "." 0 (byte-code "Ê    Ë
  561. !\"ÌÍÎK\"Ï\"ÐÑÒ #† ÒVÓ G    Ô$‰‡" [possibilities base-versions fn versions high-water-mark deserve-versions-p version-control number-to-delete kept-old-versions kept-new-versions file-name-all-completions file-name-directory sort mapcar backup-extract-version < apply max 0 - -1] 11) ((file-error (byte-code "Á‰‡" [possibilities nil] 2))) concat int-to-string + -1 mapcar (lambda (n) (byte-code "ÃÄ    Å
  562. !    %‡" [fn backup-char n concat "." int-to-string] 7)) nthcdr rplacd] 14))
  563.  
  564. (defun file-nlinks (filename) "\
  565. Return number of names file FILENAME has." (byte-code "Á!A@‡" [filename file-attributes] 2))
  566.  
  567. (defun file-relative-name (filename &optional directory) "\
  568. Convert FILENAME to be relative to DIRECTORY (default: default-directory)." (byte-code "Ä!ÅÄ    †
  569. !!‰ˆÆÇÈÉ    !P\"?….Ê    ËÌO!Í P‰ˆ‚ˆ ÎË!ÏOP)‡" [filename directory default-directory ancestor expand-file-name file-name-as-directory "" string-match "^" regexp-quote file-name-directory 0 -1 "../" match-end nil] 11))
  570.  
  571. (defun save-buffer (&optional args) "\
  572. Save current buffer in visited file if modified.  Versions described below.
  573. By default, makes the previous version into a backup file
  574.  if previously requested or if this is the first save.
  575. With 1 or 3 \\[universal-argument]'s, marks this version
  576.  to become a backup when the next save is done.
  577. With 2 or 3 \\[universal-argument]'s,
  578.  unconditionally makes the previous version into a backup file.
  579. With argument of 0, never makes the previous version into a backup file.
  580.  
  581. If a file's name is FOO, the names of its numbered backup versions are
  582.  FOO.~i~ for various integers i.  A non-numbered backup file is called FOO~.
  583. Numeric backups (rather than FOO~) will be made if value of
  584.  `version-control' is not the atom `never' and either there are already
  585.  numeric versions of the file being backed up, or `version-control' is
  586.  non-nil.
  587. We don't want excessive versions piling up, so there are variables
  588.  `kept-old-versions', which tells Emacs how many oldest versions to keep,
  589.  and `kept-new-versions', which tells how many newest versions to keep.
  590.  Defaults are 2 old versions and 2 new.
  591. `dired-kept-versions' controls dired's clean-directory (.) command.
  592. If `trim-versions-without-asking' is nil, system will query user
  593.  before trimming versions.  Otherwise it does it silently." (interactive "p") (byte-code "ňƠǠÈV
  594. … É=?…  Ê>… Å‰ˆ…&    ….ËÌÍ \"ˆÎ ˆ…? Ï>…?ʼn+‡" [modp large make-backup-files args buffer-backed-up nil buffer-modified-p buffer-size 50000 0 (16 64) message "Saving file %s..." buffer-file-name basic-save-buffer (4 64)] 7))
  595.  
  596. (defun delete-auto-save-file-if-necessary (&optional force) "\
  597. Delete auto-save file for current buffer if `delete-auto-save-files' is t.
  598. Normally delete only if the file was written by this Emacs since
  599. the last real save, but optional arg FORCE non-nil means delete anyway." (byte-code "…     … Ä
  600. \"?…  †Å … ÆÇȏˆÉ ‡" [buffer-auto-save-file-name delete-auto-save-files buffer-file-name force string= recent-auto-save-p nil (byte-code "Á!‡" [buffer-auto-save-file-name delete-file] 2) ((file-error (byte-code "À‡" [nil] 1))) set-buffer-auto-saved] 5))
  601.  
  602. (defun basic-save-buffer nil "\
  603. Save the current buffer in its visited file, if it has been modified." (interactive) (byte-code "LjѠƒüÒ ÇÇ Ó=…Ô Õ !\"?…>ÇÕ !‰ˆÖ× !!Ø!‰ˆÙ!)ˆÚ!)ˆ †KÛÜÝÞ!Ç\"!ˆßp!†gà !?†gáâãä !\"!†gåæ!ˆŒç ˆdèV…¨édSfê\"…¨É=…‡dSfëU?…¨
  604. É=†ž
  605. …žìâíØ \"!…¨Šdbˆêc)ˆî #Ç  …Äï @!‰?…Ñ A‰ ˆ‚¶ˆ?…Üð ‰*ˆêñ !8‰ˆ    …ïÇòó)ˆô!ˆõö!+‚ÿ÷ø!‡" [recent-save setmodes tempsetmodes system-type buffer-file-name buffer-new-name buf nil selective-display t require-final-newline hooks write-contents-hooks local-write-file-hooks write-file-hooks done buffer-file-number buffer-modified-p recent-auto-save-p vax-vms string= file-name-sans-versions create-file-buffer downcase buffer-name kill-buffer rename-buffer set-visited-file-name expand-file-name read-file-name "File to save in: " verify-visited-file-modtime file-exists-p yes-or-no-p format "%s has changed since visited or saved.  Save anyway? " file-name-nondirectory error "Save not confirmed" widen 1 /= 10 13 y-or-n-p "Buffer %s does not end in newline.  Add one? " append funcall basic-save-buffer-1 file-attributes (byte-code "    \"‡" [buffer-file-name setmodes set-file-modes] 3) ((error (byte-code "À‡" [nil] 1))) delete-auto-save-file-if-necessary run-hooks after-save-hook message "(No changes need to be saved)"] 32))
  606.  
  607. (defun basic-save-buffer-1 nil (byte-code "ÎÎÑ
  608. !?…@Ò
  609. !Ó !?ƒÔÕ \"‚?Ö
  610. !?ƒ+Ô× \"‚?ØÙÚÛ
  611. !\"!ƒ<ĉ‚?ÔÜ!)ˆ†IÝ ‰ˆƒÀÒ
  612. !
  613. ÎÎÎÎÎ  
  614.     މ ˆÄ‰
  615. ˆ
  616. …™Ùßàáâ  &!‰ˆÖ!‰
  617. ˆ T‰ ˆ‚oˆãŽä ˆåedÎ%ˆÄ‰ )ˆæ
  618. !‰ˆç
  619. Ä#.‚ì…Æ    ?…Óæ
  620. !‰ˆè
  621. é\"ˆê=…ä…äë
  622. Î\"ˆåed
  623. ÎÄ%ˆ    *‡" [tempsetmodes setmodes buffer-file-name dir t buffer-backed-up file-precious-flag realname tempname temp nogood i succeed autosave-char nil system-type amiga-create-icons file-writable-p file-name-directory file-directory-p error "%s is not a directory" file-exists-p "Directory %s write-protected" yes-or-no-p format "File %s is write-protected; try to save anyway? " file-name-nondirectory "Attempt to save to a file which you aren't allowed to write" backup-buffer 0 concat "%s" "tmp" "%d" ((byte-code "†    !‡" [succeed tempname delete-file] 2)) clear-visited-file-modtime write-region file-modes rename-file set-file-modes 511 amigados amiga-put-icon] 28))
  624.  
  625. (defun save-some-buffers (&optional arg exiting) "\
  626. Save some modified file-visiting buffers.  Asks user about each one.
  627. Optional argument (the prefix) non-nil means save all with no questions.
  628. Optional second argument EXITING means ask about certain non-file buffers
  629.  as well as about file buffers." (interactive "P") (byte-code "ƈȋ‡" [files-done abbrevs-done save-abbrevs abbrevs-changed arg abbrev-file-name nil t ((byte-code "ÈÉÊË ÌÍÎÏEC%
  630. …* …* †ÐÑÒ\"!…$ÓÆ!ˆÆ‰ˆÇÔV†9    †9ÕÖ!*‡" [files-done abbrevs-done save-abbrevs abbrevs-changed arg abbrev-file-name nil t map-y-or-n-p (lambda (buffer) (byte-code "Å!…;Æ!†    …qˆ
  631. …Ç ÈV…; ƒ&Ă;Æ!ƒ5ÉÊÆ!\"‚;ÉËÌ!\"‡" [buffer exiting buffer-offer-save arg t buffer-modified-p buffer-file-name buffer-size 0 format "Save file %s? " "Save buffer %s? " buffer-name] 10)) (lambda (buffer) (byte-code "qˆÁ ‡" [buffer save-buffer] 2)) buffer-list ("buffer" "buffers" "save") 18 (lambda (buf) (byte-code "Ã!ˆÄ‰ˆÅ ˆÂ‡" [buf view-exit-action nil view-buffer (lambda (ignore) (exit-recursive-edit)) recursive-edit] 3)) "display the current buffer" y-or-n-p format "Save abbrevs in %s? " write-abbrev-file 0 message "(No files need saving)"] 9))] 1))
  632.  
  633. (defun not-modified (&optional arg) "\
  634. Mark current buffer as unmodified, not needing to be saved.
  635. With prefix arg, mark buffer as modified, so \\[save-buffer] will save." (interactive "P") (byte-code "ÁˆÂƒ  Ä!ˆÅ!‡" [arg nil message "Modification-flag set" "Modification-flag cleared" set-buffer-modified-p] 3))
  636.  
  637. (defun toggle-read-only (&optional arg) "\
  638. Change whether this buffer is visiting its file read-only.
  639. With arg, set read-only iff arg is positive." (interactive "P") (byte-code "ˆ    ?ƒ ?‚à   !ÄV‰ˆÅÆ !‡" [buffer-read-only arg nil prefix-numeric-value 0 set-buffer-modified-p buffer-modified-p] 4))
  640.  
  641. (defun insert-file (filename) "\
  642. Insert contents of file FILENAME into buffer after point.
  643. Set mark after the inserted text.
  644.  
  645. This function is meant for the user to run interactively.
  646. Don't call it from programs!  Use `insert-file-contents' instead.
  647. (Its calling sequence is different; see its documentation)." (interactive "*fInsert file: ") (byte-code "ˆÃ!…ÄÅÆÇE\"ˆÈ!É`    A@\\!)‡" [filename tem nil file-directory-p signal file-error "Opening input file" "file is a directory" insert-file-contents push-mark] 6))
  648.  
  649. (defun append-to-file (start end filename) "\
  650. Append the contents of the region to the end of file FILENAME.
  651. When called from a function, expects three arguments,
  652. START, END and FILENAME.  START and END are buffer positions
  653. saying what text to write." (interactive "r
  654. FAppend to file: ") (byte-code "ĈŠ   
  655. Ã$‡" [start end filename t nil write-region] 5))
  656.  
  657. (defun file-newest-backup (filename) "\
  658. Return most recent backup file for FILENAME or nil if no backups exist." (byte-code "Å!Æ!Ç!È    
  659. \"É …:
  660. @P A‰ˆÊ    !…0 ?†0Ë     \"…6    ‰ˆ‚ˆ -‡" [filename file dir comp newest expand-file-name file-name-nondirectory file-name-directory file-name-all-completions nil backup-file-name-p file-newer-than-file-p] 9))
  661.  
  662. (defun rename-uniquely nil "\
  663. Rename current buffer to a similar name not already taken.
  664. This function is useful for creating multiple shell process buffers
  665. or multiple mail buffers, etc." (interactive) (byte-code "ˆÃÄ !Ä!Å!ˆÆ    !ˆÇÈ !*‡" [new-buf name nil generate-new-buffer buffer-name kill-buffer rename-buffer set-buffer-modified-p buffer-modified-p] 8))
  666.  
  667. (defun make-directory (dir &optional parents) "\
  668. Create the directory DIR and any nonexistent parent dirs.
  669. Interactively, the default choice of directory to create
  670. is the current default directory for file names.
  671. That is useful when you have visited a file in a nonexistint directory.
  672.  
  673. Noninteractively, the second (optional) argument PARENTS says whether
  674. to create parent directories if they don't exist." (interactive (byte-code "ÃÄÁÁ%ÂD‡" [default-directory nil t read-file-name "Make directory: "] 6)) (byte-code "ÁˆÇ È\" ƒÉ È $‚W?ƒÊ !‚WËÌ !!ÁÍ !?…@ BËÎ !!‰ˆ‚(ˆ…VÊ@!ˆA‰ˆ‚A*)‡" [default-directory nil t handler dir parents create-list find-file-name-handler make-directory funcall make-directory-internal directory-file-name expand-file-name file-exists-p file-name-directory] 12))
  675.  
  676. (put (quote revert-buffer-function) (quote permanent-local) t)
  677.  
  678. (defvar revert-buffer-function nil "\
  679. Function to use to revert this buffer, or nil to do the default.")
  680.  
  681. (put (quote revert-buffer-insert-file-contents-function) (quote permanent-local) t)
  682.  
  683. (defvar revert-buffer-insert-file-contents-function nil "\
  684. Function to use to insert contents when reverting this buffer.
  685. Gets two args, first the nominal file name to use,
  686. and second, t if reading the auto-save file.")
  687.  
  688. (defun revert-buffer (&optional ignore-auto noconfirm) "\
  689. Replace the buffer text with the text of the visited file on disk.
  690. This undoes all changes since the file was visited or saved.
  691. With a prefix argument, offer to revert from latest auto-save file, if
  692. that is more recent than the visited file.
  693.  
  694. When called from lisp, The first argument is IGNORE-AUTO; only offer
  695. to revert from the auto-save file when this is nil.  Note that the
  696. sense of this argument is the reverse of the prefix argument, for the
  697. sake of backward compatibility.  IGNORE-AUTO is optional, defaulting
  698. to nil.
  699.  
  700. Optional second argument NOCONFIRM means don't ask for confirmation at
  701. all.
  702.  
  703. If the value of `revert-buffer-function' is non-nil, it is called to
  704. do the work.
  705.  
  706. The default revert function runs the hook `before-revert-hook' at the
  707. beginning and `after-revert-hook' at the end." (interactive (byte-code "?C‡" [prefix-arg] 1)) (byte-code "ʈ    ƒÏ    
  708. #‚¿`
  709. ?…)Р…)…)Ñ!…)ÒÓ!ƒ3‚5?ƒCÔÕ!‚¾ †NÖ×Ø\"!…¾ÙÚ!ˆ?…eÛp!?…eʉ    ˆ Ì=†qʉ ˆÊÌ ƒ‡Ï#‚¬Ü!?…”ÔÝ\"ˆÊ†žÞ )ˆß ˆà?ÊÊÌ%*ˆ d^bˆáÊÊÌ#ˆÙâ!ˆÌ+‡" [prefix-arg revert-buffer-function ignore-auto noconfirm opoint auto-save-p buffer-auto-save-file-name file-name buffer-file-name buffer-backed-up nil buffer-undo-list t buffer-read-only revert-buffer-insert-file-contents-function funcall recent-auto-save-p file-readable-p y-or-n-p "Buffer has been auto-saved recently.  Revert from auto-save file? " error "Buffer does not seem to be associated with any file" yes-or-no-p format "Revert buffer from file %s? " run-hooks before-revert-hook verify-visited-file-modtime file-exists-p "File %s no longer exists!" unlock-buffer widen insert-file-contents after-find-file after-revert-hook] 20))
  710.  
  711. (defun recover-file (file) "\
  712. Visit file FILE, but get contents from its last auto-save file." (interactive (byte-code "    ÃÃ…Å!Æ!‰ˆÇÈ ÃÃ
  713. %C+‡" [prompt-file buffer-file-name file-name nil file-dir file-name-nondirectory file-name-directory read-file-name "Recover file: "] 8)) (byte-code "ÈÊ!‰ˆËÌ!!…ÍÎ\"ˆÏ )Ð
  714. \"?ƒ*ÍÑ
  715. \"‚MҋƒJÓÔÈ\"!ˆÃ    Õ ˆÖ
  716. Ã\")ˆ×ÃÃÈ#‚MÍØ!)‡" [prompt-file buffer-file-name file-name nil file-dir file system-type standard-output t buffer-read-only expand-file-name auto-save-file-name-p file-name-nondirectory error "%s is an auto-save file" make-auto-save-file-name file-newer-than-file-p "Auto-save file %s not current" ((byte-code "Å=?…\"ƐǠ   !ˆÈÉ    ÂÊ !ƒ˂Ì &‘ˆÍÎÏ \"!‡" [system-type standard-output nil file file-name vax-vms "*Directory*" buffer-disable-undo call-process "ls" file-symlink-p "-lL" "-l" yes-or-no-p format "Recover auto save file %s? "] 11)) switch-to-buffer find-file-noselect erase-buffer insert-file-contents after-find-file "Recover-file cancelled."] 15))
  717.  
  718. (defun kill-some-buffers nil "\
  719. For each buffer, ask whether to kill it." (interactive) (byte-code "ÈĠ…B@Å    !Æ
  720. Ç\"?…8È
  721. ÉHÊ\"…8ËÌÍ
  722. Π   !ƒ/ς0Ð#!…8Ñ    !*ˆA‰ˆ‚)‡" [list buffer name nil buffer-list buffer-name string-equal "" /= 0 32 yes-or-no-p format "Buffer %s %s.  Kill? " buffer-modified-p "HAS BEEN EDITED" "is unmodified" kill-buffer] 11))
  723.  
  724. (defun auto-save-mode (arg) "\
  725. Toggle auto-saving of contents of current buffer.
  726. With prefix argument ARG, turn auto-saving on if positive, else off." (interactive "P") (byte-code "Lj    ?ƒ ?‚     Â=†     <† È    !…     ÉV…6 …- …-?ƒ4 ‚6Ê ‰ˆÉW…Dɉˆt…UË̃S͂TÎ\"ˆ‡" [buffer-auto-save-file-name arg t buffer-file-name auto-save-visited-file-name buffer-read-only buffer-saved-size nil integerp 0 make-auto-save-file-name message "Auto-save %s (in this buffer)" "on" "off"] 5))
  727.  
  728. (defun rename-auto-save-file nil "\
  729. Adjust current buffer's auto save file name for current conditions.
  730. Also rename any existing auto save file, if it was made in this session." (byte-code "    Ä ‰ˆ…'    …'Å    
  731. \"?…'Å    \"?…'Æ!…'Ç …/È    Ã#)‡" [osave buffer-auto-save-file-name buffer-file-name t make-auto-save-file-name string= file-exists-p recent-auto-save-p rename-file] 9))
  732.  
  733. (defun make-auto-save-file-name nil "\
  734. Return file name to use for auto-saves of current buffer.
  735. Does not consider `auto-save-visited-file-name' as that variable is checked
  736. before calling this function.  You can redefine this for customization.
  737. See also `auto-save-file-name-p'." (byte-code "ƒÂ!    Ã!    R‚ ÄÅÆ    Ç    Ç    %È ÉÊ!#!‡" [buffer-file-name autosave-char file-name-directory file-name-nondirectory expand-file-name format concat "%s" buffer-name make-temp-name ""] 10))
  738.  
  739. (defun auto-save-file-name-p (filename) "\
  740. Return non-nil if FILENAME can be yielded by `make-auto-save-file-name'.
  741. FILENAME should lack slashes.  You can redefine this for customization." (byte-code "ÂÃÄÅÆ%    \"‡" [autosave-char filename string-match concat "^" ".*" "$"] 7))
  742.  
  743. (defconst list-directory-brief-switches (if (eq system-type (quote vax-vms)) "" "-CF") "\
  744. *Switches for list-directory to pass to `ls' for brief listing,")
  745.  
  746. (defconst list-directory-verbose-switches (if (eq system-type (quote vax-vms)) "/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)" "-l") "\
  747. *Switches for list-directory to pass to `ls' for verbose listing,")
  748.  
  749. (defun list-directory (dirname &optional verbose) "\
  750. Display a list of files in or matching DIRNAME, a la `ls'.
  751. DIRNAME is globbed by the shell if necessary.
  752. Prefix arg (second arg if noninteractive) means supply -l switch to `ls'.
  753. Actions controlled by variables `list-directory-brief-switches'
  754. and `list-directory-verbose-switches'." (interactive (byte-code "    ă ł Æ Â$D)‡" [pfx current-prefix-arg nil default-directory read-file-name "List directory (verbose): " "List directory (brief): "] 5)) (byte-code "ˆƒ ‚† ‰ˆË!‰ˆÌÍ    !ˆÎÏ!ˆÎ!ˆÐ ˆŠÌqˆÑ!?
  755. Ò 
  756. 
  757. ?$))‘)‡" [pfx current-prefix-arg nil default-directory switches verbose list-directory-verbose-switches list-directory-brief-switches dirname standard-output wildcard expand-file-name "*Directory*" buffer-disable-undo princ "Directory " terpri file-directory-p insert-directory] 12))
  758.  
  759. (defvar insert-directory-program "ls" "\
  760. Absolute or relative name of the `ls' program used by `insert-directory'.")
  761.  
  762. (defun insert-directory (file switches &optional wildcard full-directory-p) "\
  763. Insert directory listing for FILE, formatted according to SWITCHES.
  764. Leaves point after the inserted text.
  765. Optional third arg WILDCARD means treat FILE as shell wildcard.
  766. Optional fourth arg FULL-DIRECTORY-P means file is a directory and
  767. switches do not contain `d', so that a full listing is expected.
  768.  
  769. This works by running a directory listing program
  770. whose name is in the variable `insert-directory-program'.
  771. If WILDCARD, it also runs the shell specified by `shell-file-name'." (byte-code "ÍΠ   !Ï\"ƒÐÏ    
  772. &‚˜Ñ=ƒ%Ò    
  773. p#‚˜ ƒ‚Ó    !ƒ5Ô    !‚:ÔΠ   !!Õ    !Ö×Ø#…kÖÙÖ!OÚÙÖ!ÊOQÛÖ!T‰ˆ‚DˆÜ    ÊËÊÝÞ ß
  774. à%&+‚˜Ü ÊËÊ
  775. ƒ•á    !âP‚–    &)‡" [handler file switches wildcard full-directory-p system-type default-directory pattern beg shell-file-name nil t insert-directory-program find-file-name-handler expand-file-name insert-directory funcall vax-vms vms-read-directory file-name-absolute-p file-name-directory file-name-nondirectory 0 string-match "[     
  776. ;<>&|{}()#$]" match-beginning "\\" match-end call-process "-c" concat " -d " " " file-name-as-directory "."] 25))
  777.  
  778. (defvar kill-emacs-query-functions nil "\
  779. Functions to call with no arguments to query about killing Emacs.
  780. If any of these functions returns nil, killing Emacs is cancelled.")
  781.  
  782. (defun save-buffers-kill-emacs (&optional arg) "\
  783. Offer to save each buffer, then kill this Emacs process.
  784. With prefix arg, silently save all file-visiting buffers, then kill." (interactive "P") (byte-code "ȈÉÁ\"ˆÁÊËÌ \">?†ÍÎ!…‡ÏÐ!?†WРÈ
  785. …MÑ
  786. @!Ò>…DÓ
  787. @!Ó
  788. @ \"ˆ )…DÁ‰ˆ
  789. A‰ˆ‚$ˆ ?†VÍÔ!*…‡Á…f…~…rÕ@!‰ˆA‰ˆ‚`ˆ*…‡Ö ‡" [arg t processes active val functions kill-emacs-query-functions yes nil save-some-buffers mapcar (lambda (buf) (byte-code "Á!…    Â!‡" [buf buffer-file-name buffer-modified-p] 3)) buffer-list yes-or-no-p "Modified buffers exist; exit anyway? " fboundp process-list process-status (run stop open) process-kill-without-query "Active processes exist; kill them and exit anyway? " funcall kill-emacs] 14))
  790.  
  791. (define-key ctl-x-map "" (quote find-file))
  792.  
  793. (define-key ctl-x-map "" (quote toggle-read-only))
  794.  
  795. (define-key ctl-x-map "" (quote find-file-read-only))
  796.  
  797. (define-key ctl-x-map "" (quote find-alternate-file))
  798.  
  799. (define-key ctl-x-map "" (quote save-buffer))
  800.  
  801. (define-key ctl-x-map "s" (quote save-some-buffers))
  802.  
  803. (define-key ctl-x-map "" (quote write-file))
  804.  
  805. (define-key ctl-x-map "i" (quote insert-file))
  806.  
  807. (define-key esc-map "~" (quote not-modified))
  808.  
  809. (define-key ctl-x-map "" (quote list-directory))
  810.  
  811. (define-key ctl-x-map "" (quote save-buffers-kill-emacs))
  812.  
  813. (define-key ctl-x-4-map "f" (quote find-file-other-window))
  814.  
  815. (define-key ctl-x-4-map "r" (quote find-file-read-only-other-window))
  816.  
  817. (define-key ctl-x-4-map "" (quote find-file-other-window))
  818.  
  819. (define-key ctl-x-4-map "b" (quote switch-to-buffer-other-window))
  820.  
  821. (define-key ctl-x-4-map "" (quote display-buffer))
  822.  
  823. (define-key ctl-x-5-map "b" (quote switch-to-buffer-other-frame))
  824.  
  825. (define-key ctl-x-5-map "f" (quote find-file-other-frame))
  826.  
  827. (define-key ctl-x-5-map "" (quote find-file-other-frame))
  828.  
  829. (define-key ctl-x-5-map "r" (quote find-file-read-only-other-frame))
  830.